home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 3_0 / PSPRT__ / MAIN.C < prev    next >
Text File  |  1988-12-14  |  2KB  |  73 lines

  1. /*            PostScript Printer DA
  2.                         - John Jeppson
  3.  
  4.     This projects builds a desk accessory which will send a PostScript source text
  5.     to the LaserWriter.  The DA uses the standard file dialog to select a TEXT file
  6.     which must contain a valid PostScript language program.
  7.     
  8.     Unfortunately, since PostScript syntax error messages cannot be recovered from
  9.     the LaserWriter driver, your only indication of an error in the PostScript program
  10.     will be failure to print.
  11.     
  12.     NOTE: when writing your PostScript program:
  13.     
  14.     1. Don't call "showpage". QuickDraw will do that for you at the end.
  15.     
  16.     2. QuickDraw initializes the PostScript transfer matrix so that y increases
  17.        downward in the usual Macintosh manner.  If you want to use standard
  18.        PostScript directions (y increases upward) then bracket your PostScript
  19.        program with:
  20.  
  21.                 gsave initmatrix
  22.                 ----
  23.                 grestore 
  24.     
  25.     The file "Circle of Adobe" contains a PostScript Demo.
  26.     
  27.  
  28.     For further information about PostScript try:
  29.     
  30.     Texts:
  31.             "PostScript Language Tutorial and Cookbook" - Adobe Systems, Inc.
  32.             "PostScript Language Reference Manual" - Adobe Systems, Inc.
  33.             
  34.     PostScript Editor Programs:  (available from APDA)
  35.             
  36.             "PostHaste"    - Micro Dynamics, Ltd.
  37.             "Lasertalk" - Emerald City Software
  38. */
  39.     
  40.  
  41.  
  42. /* the DA routines */
  43.  
  44. void doOpen (devCtlEnt)
  45. DCtlPtr    devCtlEnt;
  46. {
  47.     if (devCtlEnt->dCtlStorage != 0)
  48.         sendPostScript();
  49.     else
  50.         SysBeep (3);    /* just abort if we have no storage */
  51.         
  52.     CloseDriver (devCtlEnt->dCtlRefNum);
  53. }
  54.  
  55.  
  56. main (paramBlock, devCtlEnt, n)
  57. cntrlParam    *paramBlock;
  58. DCtlPtr        devCtlEnt;
  59. int            n;
  60. {
  61.     switch (n) {
  62.         case 0:                /* Open - does it all in this DA */
  63.             doOpen (devCtlEnt);
  64.             break;
  65.         case 1:                /* Prime */
  66.         case 2:                /* Control */
  67.         case 3:                /* Status */
  68.         case 4:                /* Close */
  69.             break;
  70.     }
  71.     return 0;
  72. }
  73.